Today there are many types of systems for enabling file-sharing between users. Often in such systems a single progression of revisions exists in respect of each file. Thus, while one user is connected to the system and is working on a file, located on a file-sharing server of the system, different methods can be implemented for preventing concurrent access to the file by other users (e.g. file locking). If other users work on a copy of the same file while being offline and a new revision of the file is created by each user, once the users reconnects to the system a conflict resolution process is executed where one revision is maintained and the other revisions are discarded.
Prior art references considered to be relevant as a background to the invention are listed below. Acknowledgement of the references herein is not to be inferred as meaning that these are in any way relevant to the patentability of the invention disclosed herein.
U.S. Pat. No. 6,938,042 by Aboulhosn et al. discloses a method and system for sharing files between a group of computer systems. The file sharing system allows a group of computer systems to be defined. The files shared by a group are associated with a group folder. A group folder is represented by a folder created by the file system of each member of the group. The folder at each member contains a file for each file that is shared by the group. The files in the folder of a member may be actual files stored at that member, which contains the content of the shared file, or virtual files identifying the actual file that is stored at another member. When a member accesses a virtual file, the file sharing system detects the access and requests that the file owner provide a copy of the file to the accessing member on a peer-to-peer basis. Whenever a shared file is modified, the file owner sends updated metadata for that file to the other members of the group.
US Patent application Publication No. 2008/0005188 by Li et al. discloses content synchronization in a file sharing environment. A node in a circle share maintains a version vector that represents that node's knowledge of file synchronization events. Version vector data may be transmitted between nodes of the circle share via a presence service in the form of short notification messages. The version vector data is compared to identify one or more nodes to be synchronized. A resource-aware overlay representing the circle share is computed, and is used to initiate communication to determine which of the available nodes with which to synchronize will provide the most synchronization value to other nodes in the circle share.
US Patent application publication No. 2008/0005195 by Li Jin, discloses a “mass file sharer” (MFS). The MFS provides a mass P2P file sharing protocol with optional on-demand file access across a P2P network. According to US2008/0005195 Unlike conventional P2P file sharing, the MFS simultaneously asynchronously shares large numbers of files, while providing optional on-demand (synchronous) access to shared files. According to US2008/0005195 The MFS uses a unique metadata structure in combination with an inter-peer file/folder version analysis and an inter-peer file/folder availability analysis to share complex directory structures that may include any number of folders, sub-folders, and files. Sharing may be asynchronous and/or synchronous. Specifically, file sharing is generally accomplished as an asynchronous distribution across the network. However, when a particular peer wants direct access particular files, an on-demand access mode is used to enable synchronous delivery of shared files. This combination of asynchronous and synchronous file distribution enables the MFS to support a number of applications, such as on-demand movie viewing, file/folder browsing, etc.
US Patent application Publication No. 2009/0172201, Sharon Carmel, discloses a method and system for enabling peer to peer synchronization between members of a synchronized network. A predefined synchronization reference area on each member of the network is provided. A common identifier associated with the synchronization network is provided to each member. Changes are detected on a member regarding a data item. A unique identifier of a synchronization module is obtained. A relative path to the data item within the predefined synchronization reference area is obtained. A unique value is calculated based upon a content of a version of the data item that is associated with the change. A log number counter is incremented. A log representing the data item and the chance is created. The log includes data regarding the type of change, the network identifier, the unique identifier of the synchronization module, the relative path, the unique value, and the log number.
U.S. Pat. No. 7,523,146 discloses an apparatus and method of synchronizing a datum between a plurality of stores is disclosed. A version history is associated with the datum in each store. The version history has one or more entries, and each entry has an identifier and a value. The identifier identifies a store that has modified the datum, and the value indicates a number of modifications to the datum made by the store. When synchronizing the datum between stores, the version histories of the datum are compared to determine whether one version history is subordinate to another version history. The datum in the store having the subordinate version history is then replaced with the datum having the dominant version history. When compared, a conflict resolution by a user is required if the version histories are not identical, if the version histories do not have all the same identifiers, and if one version history does not contain all of the identifiers with equal or greater values of those in the other version history.